Introduction to Exploratory Data Analysis (EDA) in R

Apa yang dimaksud Exploratory Data Analysis

Exploratory Data Analysis (EDA) merupakan serangkaian langkah untuk mengenal lebih jauh data yang anda miliki, istilah Eksplor digunakan untuk mencoba menjelajahi bagaimana bentuk data, hubungan hubungan yang ada pada data, ataupun hanya sekedar ingin tahu bagaimana nilai nilai yang ada pada data yang kita miliki.

Manfaat dan Tujuan dari EDA

EDA sangat penting sebelum kita langsung terjun ke membuat model ataupun analisa kompleks lainnya, EDA bekerja sebagai fondasi awal untuk mengetahui apa aja sih yang bisa kita kerjakan dari data yang kita miliki, hipotesa hipotesa apa saja yang bisa di eksplor dari data yang kita punya. Seringkali dengan melakukan eksplorasi data, banyak sekali insight yang bisa didapat.

Contoh langkah dalam EDA

  • Memastikan tipe data yang disajikan sudah tepat
  • Melihat apakah ada penulisan ‘aneh’ pada data
  • Melihat apakah ada nilai nilai yang hilang dari data (missing value)
  • Melihat apakah di data yang kita punya terdapat nilai nilai yang ekstrim (outlier)
  • Melihat relasi antara variabel yang hadir
  • Membuat visualisasi ringkas untuk merangkum info info menarik pada data

Initial Data Analysis

Memastikan data yang terinput sudah benar

Yang dimaksud dengan sudah benar adalah apakah setiap variabel tidak memiliki nilai yang ‘aneh’

Jika didapatkan nilai yang aneh, bagaimana seharusnya kita menghandle nilai tersebut?

Memastikan tipe data sudah sesuai

Memastikan tipe data apakah sudah sesuai apa belum merupakan step krusial pertama, dikarenakan tipe data yang berbeda akan diperlakukan berbeda pula di R, walaupun isinya tetap sama.

Tipe Data dalam R

Tipe-tipe data yang umum dalam R adalah:

  • Numeric
  • Integer
  • Factor / Kategorik, dapat mempunyai Order / Urutan maupun tidak.
  • Character / teks
  • Logical
  • dan tipe data lainnya

Mengetahui tipe tipe data ini sangat penting dalam sebelum memulai analisis, pastikan tipe data dari masing masing variabel sudah tepat, berikut definisi dan contoh dari tipe data tersebut:

  • Factor (Nominal), Data Kategorik yang tidak dapat diurutkan, i.e tipe mobil (SUV, Bus, etc), Gender,
  • Ordered Factor (Ordinal), Data Kategorik yang dapat diurutkan, i.e level edukasi (Kindergarden, Elementary School, etc

Study Case

Berikut disajikan data

Untuk melihat apakah tipe datanya sudah benar, dapat menggunakan

##           Kota            AQI Tingkat Polusi     Temperatur          Cuaca 
##    "character"      "numeric"    "character"      "numeric"    "character"

ataupun

## Classes 'tbl_df', 'tbl' and 'data.frame':    34 obs. of  5 variables:
##  $ Kota          : chr  "Depok" "Batam" "Jakarta" "Medan" ...
##  $ AQI           : num  180 157 164 127 172 234 199 134 278 401 ...
##  $ Tingkat Polusi: chr  "Unhealthy" "Unhealthy" "Unhealthy" "Unhealthy for Sensitive Groups" ...
##  $ Temperatur    : num  25 27 25 24 25 23 23 25 23 23 ...
##  $ Cuaca         : chr  "Mist" "Mist" "Mist" "Mist" ...

Apakah tipe datanya sudah benar? jika belum, dapat diganti menggunakan

## Classes 'tbl_df', 'tbl' and 'data.frame':    34 obs. of  5 variables:
##  $ Kota          : chr  "Depok" "Batam" "Jakarta" "Medan" ...
##  $ AQI           : num  180 157 164 127 172 234 199 134 278 401 ...
##  $ Tingkat Polusi: Ord.factor w/ 6 levels "Good"<"Moderate"<..: 4 4 4 3 4 5 4 3 5 6 ...
##  $ Temperatur    : num  25 27 25 24 25 23 23 25 23 23 ...
##  $ Cuaca         : Factor w/ 5 levels "Broken Clouds",..: 4 4 4 4 4 1 1 1 1 1 ...
## [1] FALSE
## [1] TRUE

Mengecek Missing Value

Apa itu Missing Value

Missing Value dalah nilai yang hilang dari data

Penyebab Missing Value

Mengapa terjadi missing value dapat disebabkan oleh berbagai macam hal:

  • Tidak tersedianya data mengenai observasi tersebut
  • Error dalam pengentrian data
  • Data yang corrupt

Ataupun contoh lainnya pada data survey * Responden lupa mengisi pertanyaan * Responden mengosongkan pertanyaan karena pernyataan sulit dimengerti * Responden enggan untuk mengisi pertanyaan yang sensitif

(Tidak Dibahas) Tipe Missing Value

Mengidentifikasi Missing Value

Biasanya untuk menandakan bahwa suatu data hilang, cell tersebut dibiarkan kosong Nah, permasalahan yang dihadapi pada data di lapangan adalah, penandaan untuk mengatakan bahwa data tersebut missing sangat beragam, bisa ditulis ‘?’ (tanda tanya), bisa ditulis ‘-‘ (strip), bisa suatu bilangan yang sangat besar atau sangat kecil (misal 99 atau -999)

Study Case 1

Study Case 2

##     num_preg       glucose_conc    diastolic_bp      thickness    
##  Min.   : 0.000   Min.   :  0.0   Min.   :  0.00   Min.   : 0.00  
##  1st Qu.: 1.000   1st Qu.: 99.0   1st Qu.: 62.00   1st Qu.: 0.00  
##  Median : 3.000   Median :117.0   Median : 72.00   Median :23.00  
##  Mean   : 3.845   Mean   :120.9   Mean   : 69.11   Mean   :20.54  
##  3rd Qu.: 6.000   3rd Qu.:140.2   3rd Qu.: 80.00   3rd Qu.:32.00  
##  Max.   :17.000   Max.   :199.0   Max.   :122.00   Max.   :99.00  
##     insulin           bmi          diab_pred           age       
##  Min.   :  0.0   Min.   : 0.00   Min.   :0.0780   Min.   :21.00  
##  1st Qu.:  0.0   1st Qu.:27.30   1st Qu.:0.2437   1st Qu.:24.00  
##  Median : 30.5   Median :32.00   Median :0.3725   Median :29.00  
##  Mean   : 79.8   Mean   :31.99   Mean   :0.4719   Mean   :33.24  
##  3rd Qu.:127.2   3rd Qu.:36.60   3rd Qu.:0.6262   3rd Qu.:41.00  
##  Max.   :846.0   Max.   :67.10   Max.   :2.4200   Max.   :81.00  
##       skin         diabetes      
##  Min.   :0.0000   Mode :logical  
##  1st Qu.:0.0000   FALSE:500      
##  Median :0.9062   TRUE :268      
##  Mean   :0.8091                  
##  3rd Qu.:1.2608                  
##  Max.   :3.9006

Menghandle Missing Value (Tidak Dibahas)

Outlier & Penanganannya (Tidak Dibahas)

Visualisasi Data

Tujuan Visualisasi Data

Manusia cenderung belajar dengan mudah dengan visual, bagaimana membuat visualisasi yang baik dan pewarnaan yang sesuai dapat mengungkap pola tersembunyi dan insight tambahan dalam EDA

Visualisasi Interaktif

Visualisasi Interaktif dapat dengan mudah diterapkan di R, setelah membuat objek ggplot, kita hanya tinggal melakukan ggplotly(objek-ggplot)

Data yang digunakan

## [1] 1704    6
##         country        continent        year         lifeExp     
##  Afghanistan:  12   Africa  :624   Min.   :1952   Min.   :23.60  
##  Albania    :  12   Americas:300   1st Qu.:1966   1st Qu.:48.20  
##  Algeria    :  12   Asia    :396   Median :1980   Median :60.71  
##  Angola     :  12   Europe  :360   Mean   :1980   Mean   :59.47  
##  Argentina  :  12   Oceania : 24   3rd Qu.:1993   3rd Qu.:70.85  
##  Australia  :  12                  Max.   :2007   Max.   :82.60  
##  (Other)    :1632                                                
##       pop               gdpPercap       
##  Min.   :     60011   Min.   :   241.2  
##  1st Qu.:   2793664   1st Qu.:  1202.1  
##  Median :   7023596   Median :  3531.8  
##  Mean   :  29601212   Mean   :  7215.3  
##  3rd Qu.:  19585222   3rd Qu.:  9325.5  
##  Max.   :1318683096   Max.   :113523.1  
## 

Demonstrasi Bar Chart

Barchart digunakan utamanya sebagai komparasi antara banyaknya jumlah/count pada variabel variabel kategorik pada Data

Bar Chart dasar

Misalkan kita mau melihat banyaknya negara pada tiap benua

Penambahan Warna

Agar visualisasi lebih menarik, alangkah baiknya diberikan warna yang berbeda untuk tiap benua agar tidak monoton

Tips n Trik

  • Gunakan Barchart vertikal jika kategori yang diberikan masih sedikit, jika sudah banyak, lebih baik menggunakan versi horizontalnya
  • Jangan lupa untuk memastikan sumbu numeriknya dimulai dari 0, agar perbandingan tinggi / panjang antar kategori dapat dilakukan dengan adil (mata manusia cukup sensitif dengan tinggi)

Demonstrasi Stacked Bar Chart

Stacked Bar Chart digunakan untuk melihat bagaimana komposisi komposisi pada suatu variabel kategorik di beberapa nilai yang berbeda.

Stacked Bar Chart (versi count)

Misalnya kita ingin melihat banyaknya negara di tiap benua, namun dibedakan berdasarkan apakah negara tersebut mempunyai harapan hidup yang lebih dari 50 tahun apa tidak.

Berikut kondisi negara negara tersebut pada tahun 1952

Berikut pada tahun 2007

Stacked bar Chart (versi persentase)

Jika fokus utamanya adalah berapa persen di tiap benua yang berada di bawah 50 tahun harapan hidupnya, dapat digunakan versi stacked bar chart yang fokus pada persentase

Demonstrasi Histogram

Histogram digunakan untuk melihat distribusi yang ada pada suatu data numerik

Histogram dasar

Misalnya kita ingin melihat persebaran nilai harapan hidup pada seluruh negara pada tahun 1952

Dan pada tahun 2007

Membandingkan 2 histogram dalam satu frame

Kita juga dapat membandingkan 2 histogram sekaligus dalam satu frame

Multiple Histogram dalam frame yang berbeda beda

Jika ingin lebih fokus kepada bagaimana persebaran per kontinen nya, dapat juga menggambar histogram per kontinen

Demonstrasi Boxplot

Plot selanjutnya adalah Boxplot, Boxplot berfokus pada bagaimana jangkauan data

Versi horizontalnya

Demonstrasi Densityplot

Demonstrasi Violinplot

Violinplot dapat mempermudah kita melihat persebaran di beberapa kategori

Demonstrasi Violinplot + Boxplot

Violinplot dan boxplot dapat digabungkan menjadi satu visualisasi yang ringkas

Demonstrasi Line Chart

Line chart utamanya digunakan untuk melihat progress over time

Perkembangan negara

Misal kita ingin melihat bagaimana perkembangan beberapa negara di ASEAN, misal Indonesia, Singapore, Malaysia, dan Thailang

Lalu kita mau lihat bagaimana perkembangan gdp pertahunnya

ataupun perkembangan harapan hidup

maupun perkembangan populasi

Kita juga dapat merangkum yang lebih jauh, misalnya melihat perkembangan per benua, nah bagaimana merangkum nilai nilai yang ada pada benua? diperlukan suatu nilai yang cukup representatif menggambarkan keadaan benua tersebut, perhatikan demonstrasi berikut

Mean vs Median

Pada distribusi distribusi yang skewed, nilai mean akan sensitif terhadap kehadiran outlier.

Misalnya jika diberikan data {2,3,4,3,4,7,2,3,3,100} akan memiliki rata rata sekitar 13, sebuah nilai yang kurang merepresentasikan data, karena mayoritas berada pada nilai satuan yang kecil.

Perkembangan Benua

Mari kita coba rangkum bagaimana mean dan median tiap variabel pertahunnya berdasarkan benua

Dapat dilihat bahwa mean dan median sangat berbeda jauh nilainya, dikarenakan memang data yang didapat cukup right-skewed

Berikut bagaimana perkembangan per 5 tahun median gdp setiap benua

Berikut perkembangan untuk populasi

Berikut perkembangan untuk ekspektasi hidup

Demonstrasi Scatterplot

Scatterplot dasar

Kekuatan scatterplot berada pada melihat bagaimana hubungan antar dua variabel. Misal kita ingin melihat bagaimana hubungan antara gdp dengan ekspektasi hidup, apakah semakin besar pendapatan suatu negara, maka semakin besar harapan hidup penduduknya?

Pewarnaan titik

Selain menunjukkan hubungan 2 variabel, scatterplot dapat ditambahkan variabel ketiga, yaitu pewarnaan berdasarkan variabel tertentu, misalnya kita mau membedakan berdasarkan benua

Demonstrasi Bubbleplot

Bubbpleplot adalah scatterplot dengan besar titik yang beragam, besarnya titik tersebut dapat diatur dengan variabel lainnya, yang secara tidak langsung kita menambahkan variabel ke empat pada gambar, misalnya kita mau membedakan besarnya titik berdasarkan populasi

Demonstrasi Bubbleplot interaktif

Nah, visualisasi interaktif sangat membantu kita dalam mengeksplor lebih jauh dari presentasi yang kita buat

Menambahkan garis regresi

Kita dapat juga menggambarkan garis regresi linear pada data

## NULL

Garis regresi per benua

## NULL

Animasi Bubbple Plot

animasi garis regresi

Uncommon type of Visualization

Diverging Bars